home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs66.d81 / pg66-76.arc / PAGE66-76
Text File  |  2009-10-10  |  30KB  |  727 lines

  1.  
  2.  
  3.  
  4.           ─EVICE ─RIVERS                                            2-1
  5.  
  6.  
  7.                                     ╔NPUT ─RIVERS
  8.  
  9.                ╔NPUT  DRIVERS EXIST IN MEMORY FROM $╞┼80 TO $╞╞╞9.  ╘HEY DO
  10.           NOT HAVE A START ADDRESS SINCE THEY ARE NOT EXECUTABLE  PROGRAMS.
  11.           ╘HE  DEFAULT  INPUT  DRIVER  (╩╧┘╙╘╔├╦) IS  BUILT INTO  THE  ╟┼╧╙
  12.           ╦┼╥╬┴╠;  ╟┼╧╙  WILL ALWAYS BOOT UP WITH THE JOYSTICK AS THE INPUT
  13.           DEVICE.  ╘HE  USER MUST SELECT ANOTHER ONE IF IT IS  SO  DESIRED.
  14.           ╘HEY  HAVE THREE ENTRY POINTS IN THE VERY BEGINNING.  ╘HESE ENTRY
  15.           POINTS ARE A JUMP TABLE FROM $╞┼80-$╞┼88.
  16.                ╘HE  FIRST ENTRY POINT AT $╞┼80 IS THE MASTER RESET  VECTOR.
  17.           ╘HIS  ROUTINE MUST SET THE MOUSE SPEED (╠OCATION $8507) TO  ZERO,
  18.           AS WELL AS RESET THE MOUSE'S POSITION TO 0,0 (╠OCATIONS $3┴-$3├).
  19.           ╔T MUST ALSO CLEAR THE DIRECTION BYTE (╠OCATION $8506).
  20.                ╘HE  SECOND  VECTOR MUST RESET THE SPEED TO  ZERO  (╠OCATION
  21.           $8507).
  22.                ╘HE  THIRD VECTOR ACTUALLY PERFORMS THE INPUT.  ╔T MUST ALSO
  23.           MODIFY  THE  APPROPRIATE  FLAGS,  ADJUST THE  MOUSE'S  SPEED  AND
  24.           POSITION.
  25.                ╘HE FOLLOWING IS A SMALL MEMORY MAP OF LOCATIONS OF INTEREST
  26.           TO INPUT DRIVERS:
  27.           $30       ═OUSE CONTROL FLAG
  28.                     ┬IT 7 - ═OUSE  IS VISIBLE,  DO NOT MODIFY  THE  MOUSE'S
  29.                             POSITION IF IT IS NOT VISIBLE.
  30.           $39       ╔NPUT STATUS FLAG
  31.                     ┬IT 7 - ╘HERE  IS DATA IN THE KEYBOARD QUEUE,  THIS  IS
  32.                             NOT USED BY THE INPUT DRIVER.
  33.                     ┬IT 6 - ═OUSE HAS CHANGED DIRECTION.
  34.                     ┬IT 5 - ┬UTTON  STATUS HAS CHANGED,  EITHER THE  BUTTON
  35.                             HAS BEEN RELEASED OR PUSHED SINCE LAST CHECKED.
  36.           $3┴-$3┬   ═OUSE'S  ╪  POSITION  (0-319),  RANGE CHECKING  IS  NOT
  37.                     NECESSARY.
  38.           $3├       ═OUSE'S  ┘  POSITION (0-199),  RANGE  CHECKING  IS  NOT
  39.                     NECESSARY.
  40.           $8501     ═OUSE'S MAXIMUM SPEED.
  41.           $8502     ═OUSE'S MINIMUM SPEED.
  42.           $8503     ┴CCELERATION FACTOR;  ADDED OR SUBTRACTED EACH TIME THE
  43.                     INPUT  DRIVE  IS  SCANNED  AND THE  DIRECTION  HAS  NOT
  44.                     CHANGED.
  45.           $8505     ┬UTTON STATUS: $00-PRESSED, $80-NOT PRESSED.
  46.           $8506     ─IRECTION; $╞╞ IF NO DIRECTION IS SPECIFIED;  OTHERWISE
  47.                     A NUMBER FROM 0 TO 7:
  48.                                            3    2    1
  49.                                              *  +  *
  50.                                           4  -- * --  0
  51.                                              *  +  *
  52.                                            5    6    7
  53.                     ╘HIS  LOCATION  IS  NEEDED BY THE  SCROLL  FEATURE  FOR
  54.                     ╟┼╧PAINT.  ╔F NOT USED, FOR EXAMPLE BY A ╦OALAPAD, THIS
  55.                     FEATURE  OF ╟┼╧PAINT WILL NOT WORK,  BUT  NOTHING  ELSE
  56.                     WILL BE AFFECTED.
  57.           $8507     ═OUSE'S CURRENT SPEED.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.           ─EVICE ─RIVERS                                            2-2
  71.  
  72.  
  73.                                    ╨RINTER ─RIVERS
  74.  
  75.                ╨RINTER  DRIVERS  EXIST IN  MEMORY  FROM  $7900-$7╞╞╞.  ╘HIS
  76.           OVERLAPS  PART  OF  SCREEN 2.  ╨RINTER DRIVERS  ARE  ONLY  MEMORY
  77.           RESIDENT  WHEN  THEY  ARE IN USE.  ╟┼╧╙ LOADS THE  FIRST  PRINTER
  78.           DRIVER THAT IT CAN FIND ON THE DISK,  WHENEVER IT NEEDS TO  PRINT
  79.           SOMETHING.  ╘O MAKE A PARTICULAR PRINTER DRIVER ALWAYS BE THE ONE
  80.           FOUND,  ALL  THAT  MUST BE DONE IS TO PLACE IT AHEAD OF  ALL  THE
  81.           OTHER  PRINTER  DRIVERS IN THE DIRECTORY.  ╘HERE ARE  FIVE  ENTRY
  82.           POINTS  TO A PRINTER DRIVER.  ╘HESE FORM A JUMP TABLE FROM $7900-
  83.           $790┼.
  84.                ╘HE FIRST ENTRY POINT,  AT $7900,  IS THE MASTER RESET. ╘HIS
  85.           ROUTINE MUST INITIALIZE ANY GLOBAL VARIABLES THAT NEED TO BE SET.
  86.           ╘HIS ROUTINE IS CALLED ONCE WHEN THE DRIVER IS LOADED.  ╧NLY  THE
  87.           ═╨╙-1000  DRIVER USES THIS ROUTINE.  ┴LL THE OTHERS SIMPLY RETURN
  88.           WITHOUT DOING ANYTHING.
  89.                ╘HE   SECOND  ENTRY  POINT,   AT  $7903,   IS  THE   PRINTER
  90.           INITIALIZATION.  ╘HIS ROUTINE IS CALLED JUST PRIOR TO PRINTING AN
  91.           IMAGE. ╘HE ╪ REGISTER MUST BE SET TO AN ERROR CODE IF THE PRINTER
  92.           IS NOT AVAILABLE. ╘HIS ERROR CODE IS THE ├64'S ╦┼╥╬┴╠ STATUS BYTE
  93.           AT  LOCATION  $90.  ╘HIS ROUTINE MUST  INITIALIZE  ANY  TEMPORARY
  94.           VARIABLES USED BY THE DRIVER.
  95.                ╘HE  THIRD  ENTRY POINT,  AT $7906,  ACTUALLY  PERFORMS  THE
  96.           PRINTING  OF  A LINE.  ╠OCATIONS $02-$03 POINT TO THE  BIT  IMAGE
  97.           GRAPHIC DATA FOR THE LINE (640 PIXELS,  8 BITS HIGH,  640 BYTES).
  98.           ╠OCATIONS  $04-$05  POINT  TO A BUFFER AREA FREE FOR USE  BY  THE
  99.           DRIVER IF IT NEEDS IT. ╘HIS IS MAINLY TO GIVE PRINTERS WHICH ONLY
  100.           PRINT  7 PIXELS AT A TIME A PLACE TO ACCUMULATE THE  EXTRA  BITS.
  101.           ╠OCATIONS  $06-$07 POINT TO THE COLOR DATA FOR THE LINE.  ╘HIS IS
  102.           ONLY FOR THE BENEFIT OF COLOR PRINTERS.  ╘HE PRINTER DRIVER  MUST
  103.           NOT MODIFIFY ANY OF THESE POINTERS.
  104.                ╘HE FOURTH ENTRY POINT,  AT $7909,  CLOSES THE PRINTER. ╘HIS
  105.           ROUTINE  IS CALLED WHEN THE IMAGE IS FINISHED.  ╘HIS ALLOWS 7 BIT
  106.           PRINTERS TO PRINT THE CONTENTS OF THEIR BUFFERS.  ╘HIS IS ALSO TO
  107.           GIVE  THE  PRINTER  DRIVER  A  CHANCE TO  PRINT  A  TOP  OF  FORM
  108.           CHARACTER.
  109.                ╘HE  FIFTH  ENTRY POINT,  AT $790├,  RETURNS THE  NUMBER  OF
  110.           CHARACTER  COLUMNS THAT THE PRINTER CAN PRINT IN THE ╪  REGISTER.
  111.           ╘HE  MAXIMUM  NUMBER  OF  LINES PER PAGE IS  RETURNED  IN  THE  ┘
  112.           REGISTER.  ╘HE  ACCUMULATOR  IS LOADED WITH A  ZERO.  ╘HIS  GIVES
  113.           APPLICATIONS  THE  ABILITY  TO COMPUTE  NECESSARY  BUFFER  SIZES.
  114.           ╘YPICAL  VALUES  ARE 80 COLUMNS BY 90 LINES OR 60 COLUMNS  BY  90
  115.           LINES.
  116.                ╞INALLY,  THE PRINTER DRIVER MUST ALSO INCLUDE ITS NAME AS A
  117.           STRING AT LOCATION $790╞.  ╘HIS NAME MUST BE THE SAME AS THE FILE
  118.           NAME.  ╟┼╧WRITE  AND ╟┼╧PAINT WILL NOT SEE THE DRIVER IF THE FILE
  119.           NAME  AND  THIS TEXT STRING ARE NOT THE SAME.  ─┼╙╦╘╧╨  DOES  NOT
  120.           CARE.
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.           ╞ILE ╞ORMATS                                              3-1
  137.  
  138.  
  139.  
  140.                                  ╓╠╔╥ ╞ILE ╙TRUCTURE
  141.  
  142.                ┴ ╓╠╔╥ FILE IS A TREE STRUCTURED FILE.  ╘HE DIRECTORY POINTS
  143.           TO A SINGLE SECTOR CALLED THE ╓╠╔╥ SECTOR.  ╘HIS SECTOR IS A LIST
  144.           OF  THE  INITIAL TRACKS AND SECTORS OF EACH OF ITS  BRANCHES  (OR
  145.           CHAINS). ╔F THE BRANCH ADDRESS IS TRACK $00 SECTOR $╞╞, THEN THAT
  146.           BRANCH  DOES NOT EXIST AND IS NOT USED.  ╔T IS A PLACE HOLDER.  ┴
  147.           BRANCH  ADDRESS OF TRACK $00 SECTOR $00 SPECIFIES THE END OF  THE
  148.           SECTOR.  ╘HIS  IS  USED  BY  THE ╓╧╨┼╬ TO  COUNT  THE  NUMBER  OF
  149.           BRANCHES. ╔T IS POSSIBLE NOT TO HAVE THIS END MARKER. ╘HAT IS THE
  150.           CASE  WHEN  THERE ARE 127 BRANCHES.  ╘HIS LIMIT OF  127  BRANCHES
  151.           EXPLAINS MANY  OF ╟┼╧╙'S LIMITS,  IE.  127 NOTE  PAD  PAGES,  127
  152.           PICTURES IN A PHOTO ALBUM, 64 PAGES AND 63 PICTURES IN A ╟┼╧WRITE
  153.           FILE,  ETC.  ┼ACH BRANCH IS THE EQUIVALENT OF A NORMAL FILE,  IE.
  154.           EACH SECTOR POINTS TO THE NEXT WITH THE FIRST TWO BYTES.
  155.  
  156.  
  157.                                   ╞ONT ╞ILE ╞ORMAT
  158.  
  159.                ╞ONT FILES ARE ╓╠╔╥ FILES;  THE CHAIN NUMBER (0-126) IS  THE
  160.           POINT  SIZE.  ╟┼╧╙ LIMITS A FONT TO A POINT SIZE OF 48.  ╘HIS  IS
  161.           PROBABLY   DUE  TO  MEMORY  LIMITATIONS  FOR  STORING  THE  FONT.
  162.           ╬ONEXISTANT POINT SIZES HAVE ╓╠╔╥ CHAIN ADDRESSES OF $00,$╞╞.
  163.                ╞ONT  FILES  ARE IDENTIFIED BY A UNIQUE ╔─ NUMBER  WHICH  IS
  164.           STORED IN THE FILE'S INFO SECTOR AT OFFSET 130.  ╘HE INFO  SECTOR
  165.           CONTAINS A WORD IDENTIFIER FOR EACH POINT SIZE IN THE FONT. ╘HESE
  166.           IDENTIFIERS HAVE THE FORM:  ╔─# * 8 + POINT SIZE.  ╘HESE ╔─ WORDS
  167.           ARE USED BY ╟┼╧WRITE AND ╟┼╧PAINT.
  168.  
  169.                     ╞ONT FILE CHAIN FORMAT:
  170.  
  171.           $00       ╬UMBER  OF PIXELS MINUS 1 ABOVE THE UNDERLINE.  ╘HIS IS
  172.                     THE LINE OF PRINT.
  173.           $01-$02   ╬UMBER OF BYTES IN THE BIT STREAM.
  174.           $03       ╨OINT SIZE, CHARACTER HEIGHT IN PIXELS.
  175.           $04-$05   ╔NDEX  FROM  BEGINNING OF FONT TO TABLE OF  BIT  STREAM
  176.                     INDICES. ╒SUALLY $0008.
  177.           $06-$07   ╔NDEX FROM BEGINNING OF FONT TO FIRST BIT STREAM.
  178.           $08-???   ╘ABLE  OF WORDS WHICH ARE INDICES INTO THE BIT STREAMS;
  179.                     ONE  FOR  EACH CHARACTER FROM SPACE (32) TO  THE  TILDA
  180.                     (126).  ╘HERE IS ALSO AN EXTRA INDEX ON THE  END.  ╘HIS
  181.                     EXTRA  INDEX IS NEEDED BECAUSE THE DIFFERENCE BETWEEN A
  182.                     CHARACTER'S INDEX AND THE NEXT CHARACTER'S INDEX IS THE
  183.                     WIDTH OF THE CHARACTER IN PIXELS.
  184.           ???-???   ╨OINTED  TO BY $06-$07.  ╘HE FONT IS STORED AS  SEVERAL
  185.                     BIT  STREAMS,  ONE FOR EACH LINE OF PIXELS.  ╘HE  POINT
  186.                     SIZE  IS THE NUMBER OF BIT STREAMS.  ┴LL THE  CHARACTER
  187.                     IMAGES  ARE STORED IN THE BIT STREAM.  ╘HE ╟┼╧╙  ╦┼╥╬┴╠
  188.                     HAS  SOME VERY SOPHISTICATED BIT MANIPULATION  ROUTINES
  189.                     FOR ACCESSING ANY GIVEN CHARACTER.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.           ╞ILE ╞ORMATS                                              3-2
  203.  
  204.  
  205.                                   ╬OTES ╞ILE ╞ORMAT
  206.  
  207.                ╘HE  ╬OTES FILE CREATED BY THE ╬OTEPAD DESK ACCESSORY HAS  A
  208.           ╓╠╔╥  FILE  STRUCTURE.  ┼ACH  BRANCH  IS A  SINGLE  SECTOR  WHICH
  209.           COMPRISES A PAGE OF THE NOTEPAD.  ╘HIS SETS THE NOTEPAD'S  LIMITS
  210.           TO 127 PAGES OF 253 CHARACTERS. 127 PAGES BECAUSE OF THE LIMIT TO
  211.           THE  NUMBER OF ╓╠╔╥ CHAINS,   AND 253 CHARACTERS BECAUSE A SECTOR
  212.           HOLDS 254 DATA BYTES (2 BYTES FOR THE NEXT TRACK AND SECTOR LINK)
  213.           AND THE LAST CHARACTER MUST BE A ZERO TO TERMINATE TO TEXT.
  214.  
  215.  
  216.                                   ╨HOTO ╙CRAP ╞ILE
  217.  
  218.                ╘HE  ╨HOTO  ╙CRAP  FILE  IS A  CODED  GRAPHICS  IMAGE  IN  A
  219.           SEQUENTIALLY  STRUCTURED  FILE.  ╘HE FIRST BYTE IS THE NUMBER  OF
  220.           BYTES  WIDE  THE  IMAGE IS (ONE EIGTH OF THE  WIDTH  IN  PIXELS).
  221.           ╘HIS  MEANS THAT PHOTO SCRAPS ARE ALWAYS EVEN MULTIPLES OF  EIGHT
  222.           PIXELS WIDE.  ╘HE SECOND AND THIRD BYTE FORM A WORD WHICH IS  THE
  223.           NUMBER  OF PIXELS HIGH THE IMAGE IS.  ╞OLLOWING THESE THREE BYTES
  224.           IS  THE GRAPHICS IMAGE,  CODED IN THE SAME FORMAT AS A CLICK  BOX
  225.           (SUITABLE FOR ─╥┴╫ OR ─╥┴╫2). ╘HIS FORMAT CONSISTS OF A CODE BYTE
  226.           FOLLOWED  BY 1 OR MORE DATA BYTES.  ╘HE CODE BYTES ARE CLASSIFIED
  227.           INTO THE FOLLOWING THREE BASIC TYPES.
  228.                1) ├ODE BYTES LESS THAN 128 MEAN THAT THE FOLLOWING BYTE  IS
  229.                   TO BE REPEATED THAT MANY TIMES.
  230.                2) ├ODE  BYTES  RANGING FROM 128 TO 219 MEAN THAT IF 128  IS
  231.                   SUBTRACTED  FROM  THE CODE BYTE THEN THE  RESULT  IS  THE
  232.                   NUMBER OF DATA BYTES THAT FOLLOW.
  233.                3) ├ODE BYTES RANGING FROM 220 TO 255 ARE SPECIAL. ╞IRST 219
  234.                   IS  SUBTRACTED  FROM  THE CODE BYTE,  THE RESULT  IS  THE
  235.                   NUMBER   OF  BYTES  IN  THE  PATTERN  THAT  WILL  FOLLOW.
  236.                   ╞OLLOWING  THIS CODE BYTE IS A REPETITION COUNT  FOR  THE
  237.                   PATTERN. ╞OLLOWING THIS ARE THE BYTES THAT CONSTITUTE THE
  238.                   PATTERN. ╘HESE COULD INCLUDE EITHER OF THE FIRST TWO CODE
  239.                   TYPES.
  240.           ╙INCE GRAPHIC IMAGES CAN BE IN COLOR,  THE COLOR DATA FOLLOWS THE
  241.           GRAPHIC  IMAGE DATA.  ╘HE COLOR DATA IS CODED IN THE SAME WAY  AS
  242.           THE GRAPHIC DATA;  HOWEVER,  EACH BYTE OF COLOR DATA IS THE COLOR
  243.           FOR A BLOCK OF 8 BY 8 PIXELS (A NORMAL CHARACTER SPACE).  ╘HIS IS
  244.           THE  REASON  THAT  ╟┼╧PAINT MAKES PHOTO SCRAPS A  MULTIPLE  OF  8
  245.           PIXELS HIGH AND WIDE.
  246.  
  247.  
  248.                                    ╘EXT ╙CRAP ╞ILE
  249.  
  250.                ╘EXT SCRAPS ARE SEQUENTIALLY STRUCTURED FILES. ╘HE FIRST TWO
  251.           BYTES OF WHICH, FORM A WORD WHICH CONTAINS THE NUMBER OF BYTES IN
  252.           THE SCRAP. ╞OLLOWING THIS ARE TEXT SEGMENTS IN THE SAME FORMAT AS
  253.           ╟┼╧WRITE  FILES,  IE.  4  CODE  BYTES  FOLLOWED BY  A  ZERO  BYTE
  254.           TERMINATED STRING OF TEXT.  ╙EE THE ╟┼╧WRITE ╞ILE FORMAT FOR MORE
  255.           INFORMATION.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.           ╞ILE ╞ORMATS                                              3-3
  269.  
  270.  
  271.                              ╨HOTO AND ╘EXT ┴LBUM ╞ILES
  272.  
  273.                ┴LBUM  FILES  ARE  ╓╠╔╥  STRUCTURED  FILES, WITH EACH  CHAIN
  274.           CONTAINING AN INDIVIDUAL PHOTO SCRAP OR TEXT SCRAP.
  275.  
  276.  
  277.                                 ╟┼╧WRITE ╞ILE ╞ORMAT
  278.  
  279.                ╟┼╧WRITE  FILES  ARE ╓╠╔╥ STRUCTURED  FILES.  ╘HE  FIRST  64
  280.           BRANCHES  ARE  THE  64 PAGES ALLOWED IN THE  FILE.  ╘HE  LAST  63
  281.           BRANCHES  ARE  PHOTO  SCRAPS, IF THERE ARE  ANY  PRESENT  IN  THE
  282.           DOCUMENT.  ╙EE  THE SECTION ON ╨HOTO ╙CRAP ╞ILES AND ╨HOTO ┴LBUMS
  283.           FOR MORE INFORMATION CONCERNING THE PHOTOS.
  284.                ╘HE  FIRST TWO BYTES OF EACH PAGE FORM A WORD WHICH  IS  THE
  285.           LEFT  MARGIN'S  POSITION IN PIXELS.  ╘HE NEXT TWO BYTES  ARE  THE
  286.           RIGHT  MARGIN'S POSITION.  ╘HE FIFTH THROUGH THE SIXTEENTH  BYTES
  287.           FORM  6 WORDS WHICH ARE THE TAB STOP POSITIONS,  ALSO IN  PIXELS.
  288.           ╘HE TEXT WHICH FOLLOWS IS STORED IN SEGMENTS. ┼ACH SEGMENT STARTS
  289.           WITH  4 CODE BYTES.  ╘HE FIRST BYTE IS A $17,  IF THIS IS A  TEXT
  290.           SEGMENT (MORE LATER).  ╘HE NEXT TWO BYTES ARE THE FONT ╔─  (CODED
  291.           FORM  WHICH INCLUDES POINT SIZE;  SEE ╔NFO ╙ECTOR LOCATIONS  $80-
  292.           $9╞).  ╘HE  FOURTH  BYTE IS THE STYLE FOR THE SEGMENT;  EACH  BIT
  293.           DESIGNATING AN ATTRIBUTE:
  294.                BIT 7     ╒NDERLINE
  295.                BIT 6     ┬OLD
  296.                BIT 5     ╥EVERSED, ╬OT USED IN ╟┼╧WRITE FILES
  297.                BIT 4     ╔TALICS
  298.                BIT 3     ╧UTLINE
  299.           ╞OLLOWING THE FOUR CODE BYTES IS THE TEXT STRING WHICH HAS A ZERO
  300.           BYTE  TERMINATOR.  ╔F THE INITIAL CODE BYTE IS A $10,  THEN  THIS
  301.           SEGMENT  IS  NOT A TEXT SEGMENT,  IT IS A  PHOTO  SEGMENT.  ╨HOTO
  302.           SEGMENTS  HAVE  FIVE CODE BYTES AND NO DATA SECTION.  ╘HE  SECOND
  303.           BYTE  IS THE WIDTH OF THE IMAGE IN BYTES.  ╘HE THIRD  AND  FOURTH
  304.           BYTES DESIGNATE THE IMAGE'S HEIGHT IN PIXELS. ╨HOTO SEGMENTS HAVE
  305.           AN  EXTRA CODE BYTE WHICH IS THE ╓╠╔╥ CHAIN NUMBER FOR THE IMAGE.
  306.           ╘HIS  COULD ALLOW A DOCUMENT TO HAVE 63 DIFFERENT IMAGES BUT  USE
  307.           THE SAME IMAGE SEVERAL TIMES WITHOUT STORING IT SEVERAL TIMES.
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.           ╞ILE ╞ORMATS                                              3-4
  335.  
  336.  
  337.                                 ╟┼╧PAINT ╞ILE ╞ORMAT
  338.  
  339.                ╟┼╧PAINT  FILES  ARE  ╓╠╔╥  STRUCTURED  FILES.  ┼ACH  BRANCH
  340.           REPRESENTS  2 LINES OF THE PICTURE.  ╘HE DATA IN THE BRANCHES  IS
  341.           STORED  IN A CODED FORM THAT IS DIFFERENT FROM PHOTO  SCRAPS  AND
  342.           CLICK  BOXES.  ╞IRST  OF  ALL,  CONSECUTIVE BYTES DO NOT  FORM  A
  343.           HORIZONTAL  LINE.  ╘HE  BYTES  ARE IN THE SAME  SEQUENCE  AS  THE
  344.           ├OMMODORE  STORES  THEM ON THE HIRES  SCREEN.  ┼IGHT  CONSECUTIVE
  345.           BYTES FILL A CHARACTER POSITION. ┼VERY EIGHTH BYTE IS ON THE SAME
  346.           HORIZONTAL LINE.  ╘HE DATA IS STORED IN A CODED FORM TO  CONSERVE
  347.           DISK  STORAGE.  ╘HE CODING IS SIMPLY A CODE BYTE FOLLOWED BY SOME
  348.           DATA. ├ODE BYTES FALL INTO ONE OF THE FOLLOWING THREE CATAGORIES:
  349.                1) ├ODE   BYTES  LESS  THAN  64  DETERMINE  THE  NUMBER   OF
  350.                   INDIVIDUAL BYTES THAT FOLLOW.
  351.                2) ├ODE  BYTES  RANGING  FROM 64 TO 127 ARE  USED  FOR  FILL
  352.                   PATTERNS. ╘HE LEAST SIGNIFICANT 6 BITS DETERMINE HOW MANY
  353.                   CHARACTER  POSITIONS ARE TO BE FILLED.  ╘HIS CODE BYTE IS
  354.                   FOLLOWED BY EIGHT BYTES WHICH DETERMINE THE FILL PATTERN.
  355.                3) ├ODE  BYTES GREATER THAN 127 ARE 128 MORE THAN THE NUMBER
  356.                   OF TIMES TO REPEAT THE BYTE THAT FOLLOWS THE CODE BYTE.
  357.           ╘HIS  CODING SCHEME IS USED TO FIRST SPECIFY THE 1280 BYTES  THAT
  358.           FORM  THE TWO LINES OF THE PICTURE. ╘HIS IS FOLLOWED BY  THE  160
  359.           BYTES WHICH FORM THE COLOR DATA FOR THE TWO LINES.
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.           ─IRECTORY ╙TRUCTURE                                       4-1
  401.  
  402.  
  403.  
  404.                              ╟┼╧╙ ─IRECTORY ┼NTRY ╞ORMAT
  405.  
  406.           ┬YTE#     ─ESCRIPTION
  407.           $00       ─╧╙ FILE TYPE
  408.                          ┬IT 7     ╞ILE CLOSED PROPERLY.
  409.                          ┬IT 6     ╞ILE IS WRITE PROTECTED.
  410.                          ┬ITS 0-2  ╞ILE TYPE
  411.                                         0    ─┼╠
  412.                                         1    ╙┼╤
  413.                                         2    ╨╥╟
  414.                                         3    ╒╙╥
  415.                                         4    ╥┼╠ (╬OT PERMITTED UNDER ╟┼╧╙)
  416.           $01       ╘RACK NUMBER OF FIRST SECTOR.
  417.           $02       ╙ECTOR NUMBER OF FIRST SECTOR.
  418.           $03-$12   ╞ILE NAME.
  419.           $13       ╘RACK NUMBER FOR INFO SECTOR.
  420.           $14       ╙ECTOR NUMBER FOR INFO SECTOR.
  421.           $15       ╞ILE STRUCTURE.
  422.                          0    ╙EQUENTIAL STRUCTURE.
  423.                          1    ╓╠╔╥ FORMAT
  424.           $16       ╟┼╧╙ FILE TYPE.
  425.                          0    ╬ON-╟┼╧╙ FILE.
  426.                          1    ┬┴╙╔├ ╨ROGRAM.
  427.                          2    ┴SSEMBLY PROGRAM.
  428.                          3    ─ATA FILE.
  429.                          4    ╙YSTEM FILE.
  430.                          5    ─ESK ┴CCESSORY.
  431.                          6    ┴PPLICATION.
  432.                          7    ┴PPLICATION ─ATA.
  433.                          8    ╞ONT FILE.
  434.                          9    ╨RINTER DRIVER.
  435.                          10   ╔NPUT DRIVER.
  436.           ╘HE  NEXT  FEW  BYTES  DEFINE THE TIME AND  DATE  OF  THE  FILE'S
  437.           CREATION.
  438.           $17       ┘EAR.
  439.           $18       ═ONTH.
  440.           $19       ─AY.
  441.           $1┴       ╚OUR.
  442.           $1┬       ═INUTE.
  443.           $1├-$1─   ╞ILE SIZE IN BLOCKS (INCLUDING INFO SECTOR).
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.           ─IRECTORY ╙TRUCTURE                                       4-2
  467.  
  468.  
  469.                         ─IRECTORY ╚EADER (╘RACK 18 SECTOR 0)
  470.  
  471.           $00       ╘RACK OF FIRST DIRECTORY SECTOR.
  472.           $01       ╙ECTOR OF FIRST DIRECTORY SECTOR.
  473.           $02       $41, ┴╙├╔╔ '┴' INDICATING 4040 FORMAT.
  474.           $03       $2┴, ─╧╙ VERSION.
  475.           $04-$8╞   ┬LOCK ┴VAILABILITY ═AP,  ┬┴═, 35 TRACKS, 4  BYTES EACH.
  476.                     ╞IRST  BYTE  HAS  NUMBER OF SECTORS FREE ON THAT TRACK.
  477.                     ╘HE OTHER THREE BYTES ARE A BIT STREAM. ┬IT ZERO OF THE
  478.                     FIRST  OF THE THREE BYTES IS SECTOR 0.  ╔F THE  BIT  IS
  479.                     SET, THEN THE BLOCK IS FREE.
  480.           $90-$9╞   ─ISK NAME PADDED WITH SHIFTED SPACES ($┴0).
  481.           $┴0-$┴1   ╘WO EXTRA CHARACTERS FOR DISK NAME.
  482.           $┴2-$┴3   ─ISK ╔─.
  483.           $┴4       ╙HIFTED SPACE ($┴0).
  484.           $┴5-$┴6   ┴╙├╔╔ '2┴' FOR ─╧╙ VERSION.
  485.           $┴7-$┴┴   ╙HIFTED SPACES ($┴0).
  486.           $┴┬       ╘RACK FOR ─┼╙╦╘╧╨'S BUFFER.
  487.           $┴├       ╙ECTOR FOR ─┼╙╦╘╧╨'S BUFFER.
  488.           $┴─-$┬├   ┴╙├╔╔  '╟┼╧╙ FORMAT ╓1.1',  ONLY THE FIRST 11 BYTES ARE
  489.                     USED TO CHECK FOR ╟┼╧╙ FORMAT.
  490.           $┬─-$╞╞   ╞ILLED WITH ZEROES.
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.           ╔NFORMATION ╙ECTOR ╞ORMAT                                 5-1
  533.  
  534.  
  535.  
  536.                                  ╔NFORMATION ╙ECTOR
  537.  
  538.           ┬YTE #    ─ESCRIPTION
  539.           $00       $00,  TRACK  LINK  IS ZERO BECAUSE THERE  IS  ONLY  ONE
  540.                     SECTOR.
  541.           $01       $╞╞, NUMBER OF BYTES IN THIS SECTOR.
  542.           $02-$04   $03, $15, $┬╞, ╔NFORMATION SECTOR IDENTIFICATION BYTES.
  543.           $05-$43   ╔CON IMAGE IN SPRITE FORMAT.
  544.           $44       ─╧╙ FILE TYPE.
  545.           $45       ╟┼╧╙ FILE TYPE.
  546.           $46       ╞ILE STRUCTURE, 0 FOR SEQUENTIAL, 1 FOR ╓╠╔╥.
  547.           $47-$48   ╠OAD ADDRESS.
  548.           $49-$4┴   ┼ND OF LOAD ADDRESS.
  549.           $4┬-$4├   ╙TART   OF  EXECUTION  ADDRESS  FOR   PROGRAM;   UNUSED
  550.                     OTHERWISE.
  551.           $4─-$60   ├LASS OF FILE; ZERO BYTE TERMINATED.
  552.           $61-$74   ┴UTHOR  OF FILE;  ZERO BYTE TERMINATED.  ╘HE  FOLLOWING
  553.                     ╟┼╧╙ FILE TYPES HAVE AUTHORS:
  554.                          1    ┬┴╙╔├ ╨ROGRAM       6    ┴PPLICATION
  555.                          2    ┴SSEMBLY ╨ROGRAM    9    ╨RINTER DRIVER
  556.                          5    ─ESK ┴CCESSORY      10   ╔NPUT ─RIVER
  557.           $75-$88   ╞OR  ┴PPLICATION ─ATA FILES (AND ─ATA FILES?),  THIS IS
  558.                     THE CLASS OF THE FILE THAT CREATED THIS FILE.
  559.           $80-$81   ╞OR  FONT  FILES ONLY,  THIS IS THE ╔─ NUMBER  FOR  THE
  560.                     FONT.  ╘HIS IS HOW ╟┼╧╙ DISTINGUISHES BETWEEN FONTS FOR
  561.                     ╟┼╧WRITE AND ╟┼╧PAINT WITHOUT ACTUALLY STORING THE FONT
  562.                     NAME. ┼ACH FONT HAS ITS OWN UNIQUE ╔─ NUMBER. ╘HE KNOWN
  563.                     FONTS HAVE THE FOLLOWING ╔─ NUMBERS:
  564.                          0    ┬╙╫            13   ╘ILDEN
  565.                          1    ╒NIVERSITY     14   ┼VANS
  566.                          2    ├ALIFORNIA     15   ─URANT
  567.                          3    ╥OMA           16   ╘ELEGRAPH
  568.                          4    ─WINELLE       17   ╙UPERB
  569.                          5    ├ORY           18   ┬OWDITCH
  570.                          6    ╘OLMAN         19   ╧RMOND
  571.                          7    ┬UBBLE         20   ┼LMWOOD
  572.                          8    ╞ONTKNOX       21   ╚EARST
  573.                          9    ╚ARMON         21   ┬RENNENS (┬╒╟)
  574.                          10   ═YKONOS        23   ├HANNING
  575.                          11   ┬OALT          24   ╨UTNAM
  576.                          12   ╙TADIUM        25   ╠E├ONTE
  577.                     ╘HERE IS A BUG ON ╞ONT╨ACK ╔,  THE ┬RENNENS FONT SHOULD
  578.                     HAVE AN ╔─ NUMBER OF 22 (OR ╚EARST SHOULD). ╙INCE THESE
  579.                     TWO FONTS HAVE THE SAME ╔─ NUMBER, ONLY ONE OF THEM CAN
  580.                     BE USED IN ANY FILE,  INCLUDING IN ╟┼╧PAINT.  ╫HEN ╟┼╧╙
  581.                     LOOKS  FOR A FONT AFTER THE USER HAS  SELECTED  IT,  IT
  582.                     USES  THE ╔─ BYTE TO FIND IT.  ╔F THE ╔─ BYTES ARE  THE
  583.                     SAME, THEN THE FIRST FILE ENCOUNTERED IS USED.
  584.           $82-$9╞   ╞OR  FONT  FILES ONLY;  ╔─ WORDS FOR EACH  POINT  SIZE.
  585.                     ╘HESE ARE CODED AS: 64 * ╔─# + POINT SIZE.
  586.           $┴0-$╞╞   ╘EXT FIELD FOR THE FILE; ZERO BYTE TERMINATED.
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.           ═EMORY ═AP                                                6-1
  599.  
  600.  
  601.           $01            ╥6510     ┬UILT-IN 6510 ╔/╧ PORT, BIT ORIENTED
  602.                                         ┬IT 0 - 0=╥┴═, 1=┬┴╙╔├ ╥╧═
  603.                                         ┬IT 1 - 0=╥┴═, 1=╦ERNAL ╥╧═
  604.                                         ┬IT 2 - 0=├HARACTER SET ╥╧═,
  605.                                                 1=╔/╧ PORTS
  606.                                         ┬ITS 3-5 - ├ASSETTE CONTROL LINES
  607.                                         ┬ITS 6-7 - ╒NCONNECTED
  608.           $02-$03        ╟╨╬╘1     ╟ENERAL POINTER,  USUALLY USED TO PASS A
  609.                                    PARAMETER TO A ╦ERNAL ROUTINE.
  610.           $04-$05        ╟╨╬╘2     ╟ENERAL POINTER
  611.           $04            ╘╥┴├╦     ╘RACK NUMBER FOR DISK OPERATIONS
  612.           $05            ╙┼├╘╧╥    ╙ECTOR NUMBER FOR DISK OPERATIONS
  613.           $05            ╥╧╫       ╥OW TO PRINT TEXT ON
  614.           $06-$0┬        ┬╧╪╙╔┌    ┬OX SIZE DESCRIPTOR
  615.           $06            ┬╪╘╧╨     ╘OP ROW OF A BOX
  616.           $07            ┬╪┬╧╘     ┬OTTOM ROW OF A BOX
  617.           $08-$09        ┬╪╠┼╞╘    ╠EFT MARGIN OF A BOX
  618.           $0┴-$0┬        ┬╪╥╔╘┼    ╥IGHT MARGIN OF A BOX
  619.           $0├-$0─        ─╔╥╨╬╘    ─IRECTORY  ENTRY  POINTER,  RETURNED  BY
  620.                                    LOOKUP.  ┴LSO  USED AS  THE  DESTINATION
  621.                                    INDIRECT   POINTER  FOR  HIRES   GRAPHIC
  622.                                    OPERATIONS.
  623.           $0┼-$0╞        ╞╔╠╨╬╘    ╞ILENAME  POINTER,  USED TO POINT  TO  A
  624.                                    FILE NAME FOR FILE OPERATIONS. ┴LSO USED
  625.                                    AS THE SOURCE INDIRECT POINTER FOR HIRES
  626.                                    GRAPHIC OPERATIONS.
  627.           $10            ╙╟╘┘╨┼    ╙ELECTED ╟┼╧╙ FILE TYPE; USED BY ╘┴┬╠┼
  628.           $11            ═┴╪╞╔╠    ═AXIMUM NUMBER OF FILES TO FIND; USED BY
  629.                                    TABLE
  630.           $12-$13                  ╘EMPORARY STORAGE AREAS
  631.           $14-$15        ─╔╥╨╘2    ┴LTERNATE   DIRECTORY   ENTRY   POINTER,
  632.                                    USUALLY  POINTS TO $8400.  ┴LSO USED  TO
  633.                                    POINT TO A FILE'S INFO SECTOR WHEN IT IS
  634.                                    IN MEMORY.
  635.           $16            ─╨┴╟┼     ╬UMBER  OF  DIRECTORY  SECTORS  TO  SKIP
  636.                                    BEFORE  FINDING A HOLE IN THE DIRECTORY;
  637.                                    USED  BY  FILE SAVE ROUTINES  AND  ╚╧╠┼.
  638.                                    ┴LSO  USED  AS A PARAMETER VALUE  TO  BE
  639.                                    PASSED TO PROGRAMS.  ├OULD BE  ─┼╙╦╘╧╨'S
  640.                                    PAGE NUMBER.
  641.           $16-$17        ├╠┴╙╙╨    ╨OINTER TO CLASS STRING; USED BY ╘┴┬╠┼
  642.           $18-$19        ├╧╠╒═╬    ├OLUMN TO PRINT TEXT IN
  643.           $20-$21                  ╒NUSED
  644.           $22-$23        ╨┴╘┼╥╬    ╨OINTER TO FILL PATTERN DATA
  645.           $24-$25        ╔╬╨╨╬╘    ╨OINTER TO INPUT BUFFER
  646.           $26-$2┼        ╞╧╬╘─╘    ├URRENT FONT DATA TABLE.  ╙EE ╞ONT  ╞ILE
  647.                                    ╞ORMAT  FOR  A COMPLETE  DESCRIPTION  OF
  648.                                    THIS HEADER INFORMATION.
  649.           $26            ╨╠╔╬┼     ╬UMBER  OF  PIXELS ABOVE LINE OF  PRINT.
  650.                                    ╒NDERLINING  APPEARS 1 PIXEL  BELOW  THE
  651.                                    LINE OF PRINT. 
  652.           $27-$28        ┬╙╠┼╬     ╬UMBER   OF  BYTES  IN  THE  FONT'S  BIT
  653.                                    STREAMS
  654.           $29            ╨╙╔┌┼     ╨OINT SIZE OF THE FONT
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.           ═EMORY ═AP                                                6-2
  665.  
  666.  
  667.           $2┴-$2┬        ┬╙╨╬╘╙    ┴DDRESS OF BIT STREAM INDICES TABLE
  668.           $2├-$2─        ┬╙╨╬╘     ┴DDRESS OF THE FIRST BIT STREAM
  669.           $2┼            ╙╘┘╠┼     ─EFINES THE CURRENT PRINT STYLE
  670.                                         ┬IT 7 - ╒NDERLINE
  671.                                         ┬IT 6 - ┬OLDFACE
  672.                                         ┬IT 5 - ╥EVERSED VIDEO
  673.                                         ┬IT 4 - ╔TALICS
  674.                                         ┬IT 3 - ╧UTLINE
  675.           $2╞            ╙├╬╞╠╟    ├ONTROLS  THE  SOURCE  AND   DESTINATION
  676.                                    SCREENS,  USED BY ╥╧╫┴─╥. ┬ITS 6 & 7 ARE
  677.                                    USED   TO   DETERMINE  THE  SOURCE   AND
  678.                                    DESTINATION SCREENS AS FOLLOWS:
  679.                                         7 6  $0├-$0─  $0┼-$0╞
  680.                                         0 0    ┴╞00     ┴╞00  (═╔─╙├╥┼┼╬)
  681.                                         0 1     2        1
  682.                                         1 0     1        1
  683.                                         1 1     1        2
  684.                                    ╔F BIT 5 IS SET,  THEN ONLY SCREEN 1  IS
  685.                                    USED FOR TEXT (═ODE 10).
  686.           $30            ═╙╞╠┴╟    ═OUSE CONTROL FLAG
  687.                                         ┬IT 7 - ═OUSE IS NOT VISIBLE
  688.                                         ┬IT 6 - ┼NABLE   CHECKING   MOUSE'S
  689.                                                 POSITION   AGAINST  CURRENT
  690.                                                 MENU LIMITS.
  691.                                         ┬IT 5 - ┼NABLE   CHECKING   MOUSE'S
  692.                                                 POSITION AGAINST CLICK  BOX
  693.                                                 TABLE.
  694.           $31-$32        ═╙╨╬╘     ╨OINTER  TO  THE  SPRITE  DATA  FOR  THE
  695.                                    DEFAULT MOUSE, USUALLY $84├1
  696.           $33            ╘╧╨═      ╘OP MARGIN, USUALLY 0 (╘OP OF SCREEN)
  697.           $34            ┬╧╘═      ┬OTTOM  MARGIN,  USUALLY 199 (┬OTTOM  OF
  698.                                    SCREEN)
  699.           $35-$36        ╠┼╞╘═     ╠EFT MARGIN
  700.           $37-$38        ╥╔╟╚╘═    ╥IGHT MARGIN,  IF AN ATTEMPT IS MADE  TO
  701.                                    PRINT  TEXT  PAST  THIS COLUMN,  CONTROL
  702.                                    PASSES THROUGH $84┴┬.
  703.           $39            ╔╬╨╞╠╟    ╔NPUT CONTROL FLAGS
  704.                                         ┬IT 7 - ╘HERE   IS  DATA   IN   THE
  705.                                                 KEYBOARD BUFFER
  706.                                         ┬IT 6 - ╔NPUT  DEVICE  HAS  CHANGED
  707.                                                 DIRECTION
  708.                                         ┬IT 5 - ┬UTTON STATUS HAS CHANGED
  709.           $3┴-$3┬        ═╧╒╙┼╪    ═OUSE'S ╪ POSITION
  710.           $3├            ═╧╒╙┼┘    ═OUSE'S ┘ POSITION
  711.           $3╞-$40        ├┬╨╬╘     ╨OINTER TO CLICK BOX DATA TABLE
  712.           $41-$42        ╩═╨╓┼├    ╩UMP VECTOR USED BY ╔╬─╩═╨
  713.           $43-$44        ╫╔╬╨╬╘    ╨OINTER  USED BY ╫╔╬─╧╫ TO POINT TO  THE
  714.                                    WINDOW DESCRIPTOR BLOCK.
  715.           $8┼                      ╘HE LEAST SIGNIFICANT 3 BITS OF LOCATION
  716.                                    $──00,  USED  BY  SERIAL  COMMUNICATIONS
  717.                                    ROUTINES. ╘HESE THREE BITS REPRESENT THE
  718.                                    ╓╔├  MEMORY  BANK NUMBER AND THE  ╥╙-232
  719.                                    OUTPUT LINE.
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.